grammar Analizador;

@header {
	package pl.equipo13.p6;
}

@lexer::header {
	package pl.equipo13.p6;
}

@rulecatch {
	 catch (RecognitionException ae) {
               System.err.println(ae.getMessage());
           throw ae;
       } 
}

entrada : instrucciones EOF;
instrucciones : (instruccion)*;
instruccion : exp SEPARADOR;
exp : exp_mult (OPERADORMM exp_mult)*;
exp_mult : exp_base (OPERADORMD exp_base)*;
exp_base : NUMERO | APARENTESIS exp CPARENTESIS;

BLANCO: (' '|'\t'|'\n'|'\r\n'){$channel=HIDDEN;};
fragment DIGITO : '0'..'9';
NUMERO : (DIGITO)+('.'(DIGITO)+)?;
OPERADORMM : '+'|'-';
OPERADORMD : '/'|'*';
APARENTESIS: '(';
CPARENTESIS: ')';
SEPARADOR : ';';